#!/bin/sh
# PCP QA Test No. 1079
# Exercise pcp-atop functionality.
#
# Copyright (c) 2015 Red Hat.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

ATOP="$PCP_BINADM_DIR/pcp-atop"
test -f "$ATOP" || _notrun "$ATOP is not installed, skipped"

status=1	# failure is the default!
$sudo rm -rf $tmp.* $seq.full
trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15

# read from the pcp-atop archive with various atop options
#
atop()
{
    message="$1"
    shift
    options="$@"

    echo "$message"

    pcp_options="pcp -z --origin=+0.1 --archive $here/archives/pcp-atop"
    $pcp_options atop $options 1 >$tmp.out 2>$tmp.err

    echo "=== std out"
    cat $tmp.out
    echo "=== std err"
    cat $tmp.err
    echo "=== done" && echo
}

# real QA test starts here
atop "General options (default)"
atop "Memory option" -m
atop "Disk option" -d
atop "Scheduling option" -s

echo "Replay with atop-style time window"
PCP_HOSTZONE=1 $ATOP -r $here/archives/pcp-atop -b 11:03 -e 11:04 1 5 

echo "Replay with atop hotproc support"
PCP_HOSTZONE=1 $ATOP --hotproc -r $here/archives/pcp-hotatop 1 2

echo "Checking sample count and interval"
export PCP_ARCHIVE=$here/archives/pcp-atop
pcp -z atop -m 2 3 > $tmp.mem1
pcp -z -t 2 -s 3 atop -m > $tmp.mem2
unset PCP_ARCHIVE
test -s $tmp.mem1 || echo "Unexpected empty file 1"
test -s $tmp.mem2 || echo "Unexpected empty file 2"
diff $tmp.mem1 $tmp.mem2 && echo OK

# write a new archive, replay with pcp-atop
echo "Recording an archive using atop"
$ATOP -w $tmp.atop 1 5
echo "Replaying an archive using atop"
$ATOP -r $tmp.atop 1 >> $seq.full
echo "done"

# success, all done
status=0
exit
